package com.it.d9_interface_attention;

public class Test2 {
    public static void main(String[] args) {
        // 目标：了解使用接口的几点注意事项

        Zi z = new Zi();
        z.run();

    }
}


interface I {
    void test1();
}

interface J {
    String test1();
}
// 1.一个接口继承多个接口，如果多个接口中存在方法签名冲突，则此时不支持多继承
//interface K extends I,J {
//
//}


// 2.一个类实现多个接口，如果多个接口中存在方法签名冲突，则此时不支持多实现
//class E implements I,J {
//
//}

// 3.一个类继承了父类，又同时实现了接口，父类中和接口中有同名的默认方法，实现类会优先用父类的
class Fu {
    public void run() {
        System.out.println("------父类的run方法执行了------");
    }
}

interface It {
    default void run() {
        System.out.println("------接口IT中的run方法执行了");
    }
}

class Zi extends Fu implements It {

}

// 4.一个接口继承多个接口，多个接口中存在同名的默认方法，可以不冲突，这个类重写该方法即可

interface It1 {
    default void test() {
        System.out.println("It1");
    }
}

interface It2 {
    default void test() {
        System.out.println("It2");
    }
}

class N implements It1, It2 {
    @Override
    public void test() {
        System.out.println("自己的");
    }
}